/*
    Heart of Gold engine management system
    Copyright (C) 2004 Heart of Gold development team

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package com.heartOfGold.model;


/*
 * A Template class to be extended to make a new Formatter for the HogMessenger
 *
 * @author Ryan T. Higgins
 * @date 29APR04
 */

//import java.util.Observable;
public abstract class Formatter {
    public abstract Message parseBytes(byte[] bytes, int numBytes);

    public abstract byte[] parseMessage(Message message);

    protected static String checksum(final String input) {
        byte checksum = (byte) input.charAt(0);
        for (int i = 1; i < input.length(); i++) {
            checksum ^= input.charAt(i);
        }
        String result = Integer.toHexString(checksum);
        // boundary case
        if (result.length() == 1) {
            result = "0" + result;
        }
        return result;
    }
}
